package com.rytx.system.mapper;

import java.time.LocalDateTime;
import java.util.List;
import java.util.Map;

import cn.hutool.db.sql.Order;
import com.rytx.system.domain.ysp.ArtOrder;
import org.apache.ibatis.annotations.Param;

/**
 * 艺术订单信息Mapper接口
 *
 * @author rytx
 * @date 2024-05-12
 */
public interface ArtOrderMapper
{
    /**
     * 查询艺术订单信息
     *
     * @param id 艺术订单信息主键
     * @return 艺术订单信息
     */
    public ArtOrder selectArtOrderById(Long id);
    ArtOrder getOrderByOrderNo(String platOrderNo);
    public ArtOrder selectArtOrderByParam(ArtOrder artOrder);
    /**
     * 查询是否存在逾期订单
     *
     * @param artOrder 艺术订单信息
     * @return 预期信息
     */
    public List<ArtOrder> selectArtOrderOverdue(ArtOrder artOrder);

    /**
     * 查询艺术订单信息列表
     *
     * @param artOrder 艺术订单信息
     * @return 艺术订单信息集合
     */
    public List<ArtOrder> selectArtOrderList(ArtOrder artOrder);
    public List<ArtOrder> selectArtOrderListByUserId(Long userId);

    /**
     * 新增艺术订单信息
     *
     * @param artOrder 艺术订单信息
     * @return 结果
     */
    public int insertArtOrder(ArtOrder artOrder);

    /**
     * 修改艺术订单信息
     *
     * @param artOrder 艺术订单信息
     * @return 结果
     */
    public int updateArtOrder(ArtOrder artOrder);

    public int updateByOrderNo(ArtOrder artOrder);

    /**
     * 删除艺术订单信息
     *
     * @param id 艺术订单信息主键
     * @return 结果
     */
    public int deleteArtOrderById(Long id);

    /**
     * 批量删除艺术订单信息
     *
     * @param ids 需要删除的数据主键集合
     * @return 结果
     */
    public int deleteArtOrderByIds(Long[] ids);
    public ArtOrder orderdetails(Long id);
    public List<ArtOrder> orderTwoList(ArtOrder artOrder);

    List<ArtOrder> selectArtOrderSortById(ArtOrder artOrder);

    ArtOrder getOrderByNu(@Param("logisticsNo") String nu, @Param("logisticsCode") String com);

    List<ArtOrder> selectMainOrderList(ArtOrder orderParam);

    List<ArtOrder> appSelectArtOrderList(ArtOrder artOrder);

    List<ArtOrder> selectNotConfirmOrderList(ArtOrder orderParam);

    Long appSelectChildOrderCount(String parentOrderNo);

    List<ArtOrder> selectArtOrderListInDate(@Param("startDate") LocalDateTime startDate, @Param("endDate") LocalDateTime endDate);
    List<ArtOrder> appCarouselList();

    List<ArtOrder> getExpireLeaseOrder(ArtOrder orderParam);

    List<ArtOrder> getUnfreezeRecoveryOrderList(ArtOrder artOrder);

    void takComplete(String orderNo);

    ArtOrder getManualExpireLeaseOrder(ArtOrder mainOrder);

    List<ArtOrder> getcheckLeaseRenewalZmOrder(ArtOrder artOrder);

    List<ArtOrder> deliveryList(ArtOrder artOrder);

    List<ArtOrder> recoveryList(ArtOrder artOrder);

    int updateAfterStatusByOrderNo(String platOrderNo);

    List<ArtOrder> getArtOrderFirstPayment(ArtOrder order);

    List<ArtOrder> getAutoRenewalMainOrderList(ArtOrder artOrder);

    List<ArtOrder> getAutoRenewalOrderList(ArtOrder mainOrder);

    List<ArtOrder> getChildOrderNos(String orderNo);

    List<ArtOrder> getSmsOrderList();
}
